package com.supercube.sport.yoga.task;

import com.supercube.sport.yoga.dao.MemberCardBindingInfoMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

/**
 * Description：
 * Created By guowen
 */
@Component
@EnableScheduling
@Slf4j
public class CardBindingTask {
    @Autowired
    private MemberCardBindingInfoMapper memberCardBindingInfoMapper;
    /**
     * 定时任务1、会员绑卡表 --有效期截至时间（赠送）  定时查询判断，当前时间到了截至时间 将所有赠送的金额 次数 天数都清零。
     * 任务2、会员绑卡表--每天剩余天数-1
     * 任务3、会员绑卡表--当前时间=有效期截至日期（该字段存 时间 或 "无限期"字符串） 将状态status=4 停用，如果存的是 “无限期”不处理。
     * 任务4、如果当前状态status=3（临时停卡），当前时间==停卡结束日期时，将状态status=1(绑卡、正常)。
     */
    @Scheduled(cron="0 30 23 * * ?")
    private void clearPresent(){
        log.info("任务1、当前日期等于有效期截至时间（赠送），清空赠送的金额 次数 天数");
        memberCardBindingInfoMapper.clearPresent();
    }

    @Scheduled(cron="0 40 23 * * ?")
    private void decreaseDay(){
        log.info("任务2、会员绑卡表--每天剩余天数-1");
        memberCardBindingInfoMapper.decreaseDay();
    }

    @Scheduled(cron="0 50 23 * * ?")
    private void stopCardBind(){
        log.info("任务3、会员绑卡表--当前时间=有效期截至日期（该字段存 时间 或 无限期 字符串） 将状态status=4 停用，如果存的是 “无限期”不处理");
        memberCardBindingInfoMapper.stopCardBind();
    }

    @Scheduled(cron="0 20 23 * * ?")
    private void startCardBind(){
        log.info("任务4、如果当前状态status=3（临时停卡），当前时间==停卡结束日期时，将状态status=1(绑卡、正常)");
        memberCardBindingInfoMapper.startCardBind();
    }

    @Scheduled(cron="0 10 23 * * ?")
    private void saleAmountTask(){
        log.info("任务5、统计销售人员每天业绩明显");
        memberCardBindingInfoMapper.saleAmountTask();
    }
}
